Microcontrollers and microprocessors are used to control a variety of equipment and systems. In particular, large appliances such as heaters, air conditioners, thermostats, and refrigerators include programmable microcontrollers that manage and direct their operation. Such microcontrollers typically include, among other features, programmable memory that is programmed during assembly of the appliance to store information about the appliance as well as executable code that permits the microcontroller to perform its intended function.
By storing this appliance-controlling executable code in programmable memory, an appliance's performance and operation can be updated by merely reprogramming the microcontroller's programmable memory region. Such reprogramming can be performed in the field and eliminates the need for technicians to stock and install sensitive electronic devices for a large number of different appliances.
Along with such flexibility, however, comes some dangers. In particular, the easier it becomes to reprogram the microcontroller, the easier it becomes to install the wrong operating application in an appliance. Also the accessibility of the executable code for re-programming reprogrammable devices, can be targets for malicious or unscrupulous appliance owners or vandals. There is also the danger that proprietary information and appliance characteristics within the microcontroller's memory and executable code can be determined and misappropriated by business competitors.
While encryption of information is one option for addressing these concerns, this option typically requires more powerful, and costly, microprocessors than would otherwise be needed to simply control an appliance.
Accordingly, there exists an unmet need for a method and system by which firmware in a product (e.g., appliance) with a microcontroller can be upgraded while maintaining the privacy, security and integrity of the firmware throughout the upgrade process.